Methods, systems, and media for detecting covert malware

ABSTRACT

Methods, systems, and media for detecting covert malware are provided. In accordance with some embodiments, a method for detecting covert malware in a computing environment is provided, the method comprising: receiving a first set of user actions; generating a second set of user actions based on the first set of user actions and a model of user activity; conveying the second set of user actions to an application inside the computing environment; determining whether state information of the application matches an expected state after the second set of user actions is conveyed to the application; and determining whether covert malware is present in the computing environment based at least in part on the determination.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 12/982,984, filed Dec. 31, 2010, which claims the benefit of U.S. Provisional Patent Application No. 61/291,712, filed Dec. 31, 2009, which are hereby incorporated by reference herein in their entireties.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

The invention was made with government support under Grant No. CNS-07-14647 and Grant No. CNS-09-14312 awarded by the National Science Foundation (NSF) and under Grant No. N00014-07-1-0907 awarded by the Multidisciplinary University Initiative (MURI) of the Office of Naval Research (ONR). The government has certain rights in the invention.

TECHNICAL FIELD

The disclosed subject matter relates to methods, systems, and media for detecting covert malware.

BACKGROUND

The advent and rapid growth of an underground economy that trades stolen digital credentials has spurred the growth of crimeware-driven bots and other malware that harvest sensitive data from unsuspecting users. This form of malevolent software uses a variety of techniques from web-based form grabbing and keystroke logging to screen and video capturing for the purpose of pilfering data on remote hosts to execute a financial crime. The targets of such malware range from individual users and small companies to the wealthiest organizations.

Traditional crimeware detection techniques rely on comparing signatures of known malicious instances to identify unknown samples or on anomaly-based detection techniques in which host behaviors are monitored for large deviations from baseline behaviors. However, these approaches suffer from a large number of known weaknesses. For example, signature-based approaches can be useful when a signature is known, but due to the large number of possible variants, learning and searching all of the possible signatures to identify unknown binaries is intractable. In another example, anomaly-based approaches are susceptible to false positives and false negatives, thereby limiting their potential utility. Consequently, a significant amount of existing crimeware or malware currently operates undetected by these crimeware detection techniques.

Another drawback to these detection techniques, such as conventional host-based antivirus software, is that it typically monitors from within its host computer. This makes the antivirus software vulnerable to evasion or subversion by malware. More particularly, the number of malware attacks that disable defenses, such as antivirus software, prior to undertaking some malicious activity is constantly increasing.

There is therefore a need in the art for approaches that detect covert malware. Accordingly, it is desirable to provide methods, systems, and media that overcome these and other deficiencies of the prior art.

SUMMARY

In accordance with various embodiments, mechanisms for detecting covert malware are provided.

These mechanisms are provided for detecting crimeware, such as covert malware, using tamper resistant injection of believable decoys. In particular, decoy information or any other suitable bait information is injected whereby bogus information (e.g., logins, passwords, account numbers, etc.) is used to bait and delude crimeware, thereby forcing it to reveal itself during the exfiltration or exploitation of the monitored decoy information.

As generally described herein, these mechanisms use decoy information to attract, deceive, and/or confuse covert malware. For example, large amounts of decoy information can be generated and injected or inserted into a computing environment to lure or entice covert malware into stealing bogus information. Among other things, decoy information can be used to reduce the level of system knowledge of the covert malware, entice the covert malware to perform actions that reveal their presence and/or identities, and uncover and track the unauthorized activities of the covert malware.

In some embodiments, these mechanisms inject monitored decoy information into a host computing environment by simulating user activity that can be of interest to crimeware or covert malware. Simulated user activity can be generated using a model of actual user activity (e.g., by monitoring, recording, modifying, and/or replaying actual user activity in a computing environment, by using one or more biometric models, etc.). After simulated user activity is injected and/or conveyed to the computing environment, the detection mechanisms can determine whether the state of the computing environment matches an expected state of the computing environment. That is, these detection mechanisms can include a simulation and injection component for generating and transmitting simulated user activity, such as mouse and keyboard events, and a verification component for verifying state information in response to the injected simulated user activity. The verification can be a comparison based on, for example, the graphical output of a portion of a display screen, the number of messages in particular conversations, the absolute number of pixels in a portion of a display screen, etc.

In response to the verification, the mechanisms can then determine whether traffic indicates the presence of covert malware in the application and can determine whether a decoy corresponding to the simulated user activity has been accessed by an unauthorized entity. In a more particular example, the existence of credential stealing malware can be monitored and detected by impersonating a user login to a sensitive website using decoy credentials and detecting whether this specific account was accessed by anyone else except for the system. This provides clear and concrete evidence that the credentials were stolen and that an entity other than the system attempted to check the validity and/or value of that account.

It should be noted that, in some embodiments, the content of the decoy information itself can be used to detect covert malware. For example, decoy information can include one or more decoy PayPal accounts tied to bogus identities, one or more decoy Gmail accounts with bogus logins and passwords, or one or more decoy bank accounts from large financial institutions. In some embodiments, these decoy accounts can be created and provided from collaborating companies. In some embodiments, the bogus logins to sensitive websites and other decoy information can be monitored by external approaches (e.g., polling a website or using a custom script that accesses mail.google.com and parses the bait account pages to gather account activity information). More particularly, monitors or other external approaches can be created to obtain or poll information relating to these decoy accounts—e.g., last login time, IP address, etc.

It should be also noted that, in some embodiments, the detection mechanisms operate external to the host computing environment making it difficult to subvert by malware residing within the host computing environment.

It should further be noted that, in some embodiments, believable decoy information and believable simulated user activity is injected into the host computing environment. More particularly, the detection mechanisms provide replayed user actions or user activity such that the believable decoy information and believable simulated user activity is indistinguishable by covert malware or any other crimeware to avoid elusion.

In accordance with various embodiments of the disclosed subject matter, methods, systems, and media for detecting covert malware are provided. In some embodiments, a method for detecting covert malware in a computing environment is provided, the method comprising: receiving a first set of user actions; generating a second set of user actions based on the first set of user actions and a model of user activity; conveying the second set of user actions to an application inside the computing environment; determining whether state information of the application matches an expected state after the second set of user actions is conveyed to the application; and determining whether covert malware is present in the computing environment based at least in part on the determination.

In accordance with some embodiments, a system for detecting covert malware in a computing environment is provided, the system comprising a processor that: a hardware processor that is configured to: receive a first set of user actions; generate a second set of user actions based on the first set of user actions and a model of user activity; convey the second set of user actions to an application inside the computing environment; determine whether state information of the application matches an expected state after the second set of user actions is conveyed to the application; and determine whether covert malware is present in the computing environment based at least in part on the determination.

In accordance with some embodiments, a non-transitory computer-readable medium containing computer-executable instructions that, when executed by a processor, cause the processor to perform a method for detecting covert malware in a computing environment is provided. The method comprises: receiving a first set of user actions; generating a second set of user actions based on the first set of user actions and a model of user activity; conveying the second set of user actions to an application inside the computing environment; determining whether state information of the application matches an expected state after the second set of user actions is conveyed to the application; and determining whether covert malware is present in the computing environment based at least in part on the determination.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of a system suitable for implementing an application that detects covert malware in accordance with some embodiments of the disclosed subject matter.

FIG. 2 is a diagram of a detection system external to a virtual-machine based host that detects covert malware in accordance with some embodiments of the disclosed subject matter.

FIG. 3 is a diagram of a detection system deployed in an enterprise environment with non-virtual machine-based hosts that detects covert malware in accordance with some embodiments of the disclosed subject matter.

FIG. 4 is a diagram of a detection system deployed in a wireless device-based architecture that detects covert malware in accordance with some embodiments of the disclosed subject matter.

FIG. 5 is a diagram of a detection system deployed in a thin client-based architecture that detects covert malware in accordance with some embodiments of the disclosed subject matter.

FIG. 6 is a diagram showing an example of a process for detecting covert malware by simulating user activity and verifying its response in a computing environment in accordance with some embodiments of the disclosed subject matter.

FIG. 7 is a diagram showing an example of a formal language that specifies a sequence of user activity in accordance with some embodiments of the disclosed subject matter.

FIG. 8 is a diagram showing an example of monitored network traffic elicited from a Sinowal Trojan in accordance with some embodiments of the disclosed subject matter.

FIG. 9 is a diagram showing an example from a thin client environment of the top IP addresses that covert malware communicates with and the top script names that exfiltrated data in accordance with some embodiments of the disclosed subject matter.

DETAILED DESCRIPTION

In accordance with various embodiments, as described in more detail below, mechanisms for detecting covert malware are provided. These mechanisms are provided for detecting crimeware, such as covert malware, using tamper resistant injection of believable decoys. In particular, decoy information or any other suitable bait information is injected whereby bogus information (e.g., logins, passwords, account numbers, etc.) is used to bait and delude crimeware, thereby forcing it to reveal itself during the exfiltration or exploitation of the monitored decoy information.

As generally described herein, these mechanisms use decoy information (sometimes referred to herein as “decoys” or “bait information”) to attract, deceive, and/or confuse covert malware. For example, large amounts of decoy information can be generated and injected or inserted into a computing environment to lure or entice covert malware into stealing bogus information. Among other things, decoy information can be used to reduce the level of system knowledge of the covert malware, entice the covert malware to perform actions that reveal their presence and/or identities, and uncover and track the unauthorized activities of the covert malware.

These and other approaches for generating trap-based decoy information and baiting inside attackers are also described, for example, in Stolfo et al. U.S. Patent Application Publication No. 2010/0077483, filed Sep. 23, 2009, which is hereby incorporated by reference herein in its entirety.

In some embodiments, these mechanisms inject monitored decoy information into a host computing environment by simulating user activity that can be of interest to crimeware or covert malware. Simulated user activity can be generated using a model of actual user activity (e.g., by monitoring, recording, modifying, and/or replaying actual user activity in a computing environment, by using one or more biometric models, etc.). After simulated user activity is injected and/or conveyed to the computing environment, the detection mechanisms can determine whether the state of the computing environment matches an expected state of the computing environment. That is, these detection mechanisms can include a simulation and injection component for generating and transmitting simulated user activity, such as mouse and keyboard events, and a verification component for verifying state information in response to the injected simulated user activity. The verification can be a comparison based on, for example, the graphical output of a portion of a display screen, the number of messages in particular conversations, the absolute number of pixels in a portion of a display screen, etc.

In response to the verification, the mechanisms can then determine whether traffic indicates the presence of covert malware in the application and determine whether a decoy corresponding to the simulated user activity has been accessed by an unauthorized entity. In a more particular example, the existence of credential stealing malware can be monitored and detected by impersonating a user login to a sensitive website using decoy credentials and detecting whether this specific account was accessed by anyone else except for the system. This provides clear and concrete evidence that the credentials were stolen and that an entity other than the system attempted to check the validity and/or value of that account.

It should be noted that, in some embodiments, the content of the decoy information itself can be used to detect covert malware. For example, decoy information can include one or more decoy PayPal accounts tied to bogus identities, one or more decoy Gmail accounts with bogus logins and passwords, or one or more decoy bank accounts from large financial institutions. In some embodiments, these decoy accounts can be created and provided from collaborating companies. In some embodiments, the bogus logins to sensitive websites and other decoy information can be monitored by external approaches (e.g., polling a website or using a custom script that accesses mail.google.com and parses the bait account pages to gather account activity information). More particularly, monitors or other external approaches can be created to obtain or poll information relating to these decoy accounts—e.g., last login time, IP address, etc.

It should be also noted that, in some embodiments, the detection mechanisms operate external to the host computing environment making it difficult to subvert by malware residing within the host computing environment.

It should further be noted that, in some embodiments, believable decoy information and believable simulated user activity is injected into the host computing environment. More particularly, the detection mechanisms provide replayed user actions or user activity such that the believable decoy information and believable simulated user activity is indistinguishable by covert malware or any other crimeware to avoid elusion.

These mechanisms can be used in a variety of applications. For example, in a virtual machine environment, an out-of-host agent external to a virtual machine-based host can insert simulated user activity into a virtual machine environment to convince covert malware residing within the guest operating system that it has captured legitimate credentials. In another example, in a thin client environment, an out-of-host agent can be deployed as a thin client external to a central virtual machine-based host, where a thin client remote access interface can be used to inject and verify simulated user activity. In yet another suitable example, a wireless device-based architecture can be provided in which simulated mouse and keyboard events can be injected wirelessly into a host using the Bluetooth protocol.

Turning to FIG. 1, an example of a system 100 in which the detection mechanisms can be implemented is shown. As illustrated, system 100 includes multiple collaborating computer systems 102, 104, and 106, a communication network 108, a malicious/compromised computer 110, communication links 112, a detection system 114, and an attacker computer system 116.

Collaborating systems 102, 104, and 106 can be systems owned, operated, and/or used by universities, businesses, governments, non-profit organizations, families, individuals, and/or any other suitable person and/or entity. Collaborating systems 102, 104, and 106 can include any number of user computers, servers, firewalls, routers, switches, gateways, wireless networks, wired networks, intrusion detection systems, and any other suitable devices. Collaborating systems 102, 104, and 106 can include one or more processors, such as a general-purpose computer, a special-purpose computer, a digital processing device, a server, a workstation, and/or various other suitable devices. Collaborating systems 102, 104, and 106 can run programs, such as operating systems (OS), software applications, a library of functions and/or procedures, background daemon processes, and/or various other suitable programs. In some embodiments, collaborating systems 102, 104, and 106 can support one or more virtual machines. Any number (including only one) of collaborating systems 102, 104, and 106 can be present in system 100, and collaborating systems 102, 104, and 106 can be identical or different.

Communication network 108 can be any suitable network for facilitating communication among computers, servers, etc. For example, communication network 108 can include private computer networks, public computer networks (such as the Internet), telephone communication systems, cable television systems, satellite communication systems, wireless communication systems, any other suitable networks or systems, and/or any combination of such networks and/or systems.

Malicious/compromised computer 110 can be any computer, server, or other suitable device that includes the covert malware. In addition, malicious/compromised computer 110 can be used to launch a computer threat, such as a virus, worm, trojan, rootkit, spyware, key recovery attack, denial-of-service attack, malware, probe, etc. The owner of malicious/compromised computer 110 can be any university, business, government, non-profit organization, family, individual, and/or any other suitable person and/or entity.

It should be noted that, in some embodiments, an external attacker can become an inside attacker when the external attacker attains internal network access. For example, using spyware, rootkits, or any other suitable malware, external attackers can gain access to communications network 108. Such software can easily be installed on computer systems from physical or digital media (e.g., email, downloads, etc.) that provides an external attacker with administrator or “root” access on a machine along with the capability of gathering sensitive data. The external attacker can also snoop or eavesdrop on one or more systems 102, 104, and 106 or communications network 108, download and exfiltrate data, steal assets and information, destroy critical assets and information, and/or modify information. Rootkits have the ability to conceal themselves and elude detection, especially when the rootkit is previously unknown, as is the case with zero-day attacks. An external attacker that manages to install rootkits internally in effect becomes an insider, thereby multiplying the ability to inflict harm.

In some embodiments, the owner of malicious/compromised computer 110 may not be aware of what operations malicious/compromised computer 110 is performing or may not be in control of malicious/compromised computer 110. Malicious/compromised computer 110 can be acting under the control of another computer (e.g., attacker computer system 116) or autonomously based upon a previous computer attack which infected computer 110 with a virus, worm, trojan, spyware, malware, probe, etc. For example, some malware can passively collect information that passes through malicious/compromised computer 110. In another example, some malware can take advantage of trusted relationships between malicious/compromised computer 110 and other systems 102, 104, and 106 to expand network access by infecting other systems. In yet another example, some malware can communicate with attacking computer system 116 through an exfiltration channel 120 to transmit confidential information (e.g., IP addresses, passwords, credit card numbers, etc.).

It should be noted that any number of malicious/compromised computers 110 and attacking computer systems 116 can be present in system 100, but only one is shown in FIG. 1 to avoid overcomplicating the drawing.

More particularly, for example, each of the one or more collaborating or client computers 102, 104, and 106, malicious/compromised computer 110, detection system 114, and attacking computer system 116, can be any of a general purpose device such as a computer or a special purpose device such as a client, a server, etc. Any of these general or special purpose devices can include any suitable components such as a processor (which can be a microprocessor, digital signal processor, a controller, etc.), memory, communication interfaces, display controllers, input devices, etc. For example, client computer 1010 can be implemented as a personal computer, a personal data assistant (PDA), a portable email device, a multimedia terminal, a mobile telephone, a set-top box, a television, etc.

In some embodiments, any suitable computer readable media can be used for storing instructions for performing the processes described herein, can be used as a content distribution that stores content and a payload, etc. For example, in some embodiments, computer readable media can be transitory or non-transitory. For example, non-transitory computer readable media can include media such as magnetic media (such as hard disks, floppy disks, etc.), optical media (such as compact discs, digital video discs, Blu-ray discs, etc.), semiconductor media (such as flash memory, electrically programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), etc.), any suitable media that is not fleeting or devoid of any semblance of permanence during transmission, and/or any suitable tangible media. As another example, transitory computer readable media can include signals on networks, in wires, conductors, optical fibers, circuits, any suitable media that is fleeting and devoid of any semblance of permanence during transmission, and/or any suitable intangible media.

Referring back to FIG. 1, communication links 112 can be any suitable mechanism for connecting collaborating systems 102, 104, 106, malicious/compromised computer 110, detection system 114, and attacking computer system 116 to communication network 108. Links 112 can be any suitable wired or wireless communication link, such as a T1 or T3 connection, a cable modem connection, a digital subscriber line connection, a Wi-Fi or 802.11(a), (b), (g), or (n) connection, a dial-up connection, and/or any other suitable communication link. Alternatively, communication links 112 can be omitted from system 100 when appropriate, in which case systems 102, 104, and/or 106, computer 110, and/or detection system 114 can be connected directly to communication network 108.

Detection system 114 can be any computer, server, router, or other suitable device for modeling, generating, inserting, distributing, monitoring, verifying, and/or managing decoy information into system 100. Similar to collaborating systems 102, 104, and 106, detection system 114 can run programs, such as operating systems (OS), software applications, a library of functions and/or procedures, background daemon processes, and/or various other suitable programs. In some embodiments, detection system 114 can support one or more virtual machines.

In a more particular example, detection system 114 can be implemented in a virtual machine environment, where an out-of-host agent drives simulated user activity that is meant to convince covert malware residing within the guest operating system that it has captured legitimate credentials. This is generally applicable to systems that are fully virtualized (e.g., VMWare) and the operating systems on which they are supported. An illustrative example of detection system 114 implemented in a virtual machine architecture is shown in FIG. 2.

As shown, architecture 200 can include a simulation and injection component 210 (sometimes referred to herein as “VMSim” or a “simulation engine”), a virtual machine verification (VMV) component 220, and a network monitoring component 230. Simulation and injection component 210 executes outside of a virtual machine and passes its actions (e.g., user actions 240 and simulated user activity or decoys 250) into a guest operating system 260. More particularly, simulation and injection component 210 generates simulated user activity 250 by recording, modifying, and replaying keyboard and mouse events captured from users. In addition, simulation and injection component 210 can replay and inject monitored user activity (without decoys) to increase the believability of the simulated user activity 250. Upon the injection of simulated user activity 250, virtual machine verification component 220 can be used to determine whether the state of the virtual machine is an expected state (e.g., one of a number of predefined states). Network monitoring component 230 can then detect when covert malware attempts to exfiltrate data. For example, network monitoring component 230 records and transmits alerts in response to determine that malicious traffic is originating from the virtual machine host.

Alternatively or additionally, detection system 114 and its detection mechanisms can be deployed in an enterprise environment. For example, detection system 114 can be used in an enterprise environment to monitor for site-specific credential misuse and to profile attackers targeting that environment. In a more particular example, detection system 114 can be deployed to run simulations on a user's system (e.g., one of collaborating systems 102, 104, or 106) when it is idle (e.g., during meetings, at particular times during the night, etc.). Virtual machines can be created on demand from a user's native environment. For example, as shown in FIG. 3, detection system 114 is deployed as an enterprise service that runs a simulation over exported copies of multiple users' disk images 310 from corresponding user computers 320. Alternatively, in some embodiments, the machine state of each user computer 320 can be synchronized with the state of the detection system 114. As a result, detection system 114 including, for example, a simulation and injection component 210 of FIG. 2, can use the disk images 310 to simulate user activity and inject the simulated user activity into the enterprise environment 300. This allows detection system 114 to detect covert malware conducting long-term corporate reconnaissance. For example, detection system 114 can be used to detect covert malware that attempts to steal credentials only after they have been repeatedly used in the past. That is, instead of generally detecting covert malware, detection system 114 can be used to detect targeted espionage software.

It should be noted that, in some embodiments, specialized decoy information and general decoy information can be generated, where specialized decoys are used to detect targeted espionage software and where general decoys can be used to assist the organization identify compromised internal users.

In some embodiments, detection system 114 and its detection mechanisms can be implemented without using virtual machines. For example, a wireless device-based architecture 400, as shown in FIG. 4, provides detection system 114 that injects mouse and keyboard events wirelessly using the Bluetooth protocol or any other suitable wireless protocol into user computers 410 via wireless communication paths 420. In a more particular example, detection system 114 can run a Bluetooth proxy application that receives user activity (e.g., by monitoring network traffic), translates the user activity to Bluetooth human interface device (HID) protocol, and transmits them to a host, such as one of user computers 410. Detection system 114 can, using network verification, verify the success and failure of the injected mouse and keyboard events using traffic analysis of encrypted protocols. For example, as shown in FIG. 4, network traffic 430 can be monitored and portions of the network traffic can be verified to determine whether the output from the injected mouse and keyboard events is as expected.

In yet another suitable embodiment where detection system 114 and its detection mechanisms can be implemented without using virtual machines, FIG. 5 shows a thin-client based architecture 500 having detection system 114 implemented as a thin client. As shown, thin client-based architecture generally includes a central virtual machine host 510 (which can be one physical server or multiple servers) and one or more dummy computers 520 connected to the host via communication paths 530 (e.g., a local and fast network connection). Detection system 114 and other thin clients 520 transmit user actions (e.g., keyboard events, mouse events, etc.) to central virtual machine host 510 and remotely display the screen output of the virtual machine. That is, particular computations and functionality can be offloaded to host 510. Using thin clients 520, each user can access and use virtual machines hosted on central virtual machine host 510 and detection system 114 can access each hosted virtual machine.

More particularly, detection system 114 is deployed as a thin client (outside of the virtual machines) that periodically connects to each hosted virtual machine and injects decoy credentials. The remote access protocols used in thin client environments (e.g., Citrix, VNC, remote desktop protocol (RDP), etc.) can be used for both injecting simulated user activity or any other suitable decoy information and verification. For example, detection system 114 in the thin client environment can inject decoy credentials into a hosted virtual machine and can then perform a verification of the injected decoys by receiving arbitrary portions of rendered screens and counting the absolute number of pixels in each of the portions.

It should be noted that detection system 114 can generate decoy information (e.g., bogus credentials) that complies with particular properties that enhance the deception for different classes or threat levels of inside attackers. Decoy information can be generated that is, for example, believable, enticing, conspicuous, detectable, variable, differentiable from actual or authentic information, non-interfering with legitimate users, etc.

Detection system 114 can generate decoy information that is believable. That is, decoy information can be generated such that it is difficult for a user to discern whether the decoy information is from a legitimate source or in fact a decoy. For example, decoy information can be generated to appear realistic and indistinguishable from actual information used in the system. More particularly, detection system 114 can record information, events, and network flow in systems 100, 200, 300, 400, and 500. For example, detection system 114 can record user activity, such as keyboard and mouse events, modify the recorded user activity to simulate believable decoy information in the form of simulated user activity. In addition, detection system 114 can replay recorded user activity captured from real users that is not used to simulate user activity, but is used to support the believability of simulated user activity. Accordingly, using actual user activity, simulated user activity, and/or a model of user activity as described herein, covert malware or any other suitable attacking computer does not detect detection system 114 as the source of decoy information.

In some embodiments, detection system 114 can determine whether decoy information complies with a believability property. For example, detection system 114 can perform a decoy Turing test, where portions of decoy information and legitimate information are selected—one contains decoy information and the other contains information randomly selected from authentic information. The two pieces of information can be presented to a volunteer or any other suitable user and the volunteer can be tasked to determine which of the two are authentic. In some embodiments, in response to testing the believability of decoy information and receiving a particular response rate, detection system 114 can consider decoy information to comply with the believability property. For example, detection system 114 can determine whether a particular piece of decoy information, such as a bogus credential, is selected as an authentic and believable piece of information at least 50% of the time, which is the probability if the volunteer user selected at random. In another example, detection system 114 can allow a user, such as an administrator user that has access to detection system 114, to select a particular response rate for the particular type of decoy information. If the decoy information is tested for compliance with the believability property and receives an outcome less than the predefined response rate, detection system 114 can discard the decoy information and not inject the decoy information in the computing environment.

Similarly, detection system 114 can also determine whether simulated user activity complies with a believability property. For example, detection system 114 can perform a Turing test, where portions of simulated user activity and actual user activity are selected. The two pieces of information can be presented to a volunteer or any other suitable user and the volunteer can be tasked to determine which of the two are authentic.

Accordingly, decoy information that complies with one or more of the above-mentioned properties can be used to entice covert malware into believing that it has obtained legitimate credentials and confuse or slow down covert malware. For example, covert malware can be forced to spend time and energy obtaining information and then sorting through the collected information to determine actual information from decoy information. In another example, the decoy information can be modeled to contradict the actual or authentic data on one of systems 100, 200, 300, 400, or 500, thereby confusing the covert malware at attacking computer system 116 or the user of attacking computer system 116 and luring the user of attacking computer system 116 to risk further actions to clear the confusion.

As described above, mechanisms for detecting covert malware are provided. FIG. 6 illustrates an example of a process 600 for detecting covert malware in accordance with some embodiment of the disclosed subject matter. As shown, process 600 begins by monitoring user activity at 602. The user activity can include, for example, mouse and keyboard events captured from users (e.g., users at collaborating system 102 of FIG. 1), network traffic, etc. For example, as shown in FIG. 2, simulation and injection component 210 can receive recorded mouse and keyboard events (e.g., X-Window events) captured from users. In another example, as shown in FIG. 4, detection system 114 can monitor traffic and conversation summaries to determine user activity over a network. In yet another example, as shown in FIG. 5, detection system 114 can receive monitored mouse and keyboard actions from users on user computers 520.

Referring back to FIG. 6, simulated user activity can then be generated based on the monitored user activity at 604. For example, as shown in FIG. 2, simulation and injection component (VMSim) 210 can perform a simulation process that records, modifies, and replays mouse and keyboard events based on the monitored user activity.

In some embodiments, a formal language that specifies a sequence of user activity can be used by simulation and injection component (VMSim) 210. The formal language can be used to generate variable simulation behaviors and workflows. An illustrative example of a formal language, such as a VMSim language, is shown in FIG. 7.

It should be noted that the formal language shown in FIG. 7 can be used to differentiate between different types of user activity. For example, as shown, the formal language can define carry actions that result in the simulation and injection of decoys. In another example, the formal language can define cover actions that are recorded and replayed to support the believability of the injection of carry actions or carry traffic. Cover actions can include the opening and editing of a text document (e.g., WordActions) or the opening and closing of particular windows (e.g., SysActions). As also shown in FIG. 7, the formal language can include verification actions (VerifyAction) that allow simulation and injection component (VMSim) 210 to communicate and interact with virtual machine verification component 220. In particular, this provides support for conditional operations, synchronization, and/or error checking It should also be noted that, using verification actions, simulation and injection component (VMSim) 210 can interact with virtual machine verification component 220 to ensure the accuracy of simulations (and simulated user activity) as particular actions can cause delays.

Referring back to FIG. 6, in generating simulated user activity, recorded mouse and keyboard events of an actual user can be mapped to the constructs of the formal language. In addition, once the simulated user activity is implemented, one or more models can be applied. For example, simulation and injection component (VMSim) 210 of FIG. 2 can be tuned to one or more biometric models for keystroke speed, mouse speed, mouse distance, and the frequency of errors made by a user when typing. These parameters function as controls over the formal language and assist in creating variability in the simulations by simulation and injection component (VMSim) 210. Depending on the particular simulation, other parameters such as uniform resource locators (URLs) or other text that must be typed are then entered to adapt each action. Simulation and injection component (VMSim) 210 translates the formal language's actions (e.g., one or more CarryActions, CoverActions, etc.) into lower level constructs that include keyboard and mouse functions. These can then be outputted, for example, as X protocol level data for replaying using the XText extensions.

In some embodiments, one or more features, such as keycodes (e.g., the ASCII code representing a key), the duration for which a key is pressed, keystroke error rates, mouse movement speed, and mouse movement distance, can be recorded for the construction of one or more user models or biometric models. For example, generative models for keystroke timing can be created by dividing the recorded data for each keycode pair into separate classes, where each class is determined by the distance in standard deviations from the mean. The distribution for each keycode sequence can be calculated as the number of instances of each class. Simulation keystroke timing can be adapted to profiles of individual users by generating random times that are bounded by the class distribution.

Similarly, for mouse movements, user specific profiles for speed and distance can be calculated. Recorded mouse movements can be divided into variable length vectors that represent particular periods of mouse activity. Distributions for each user can be calculated using these vectors. The mouse movement distributions can be used as parameters for tuning the simulated user actions generated by simulation and injection component (VMSim) 210.

It should be noted that, in order to generate tamper resistant simulated user activity and tamper resistant decoy information, the generation of the simulated user activity occurs outside of the host computing environment. For example, in FIG. 2, the location where the simulation process is executed (simulation and injection component 210) and the location where the user actions are received (guest operating system 260) are decoupled. In another example, in FIGS. 4 and 5, detection system 114 also resides outside of the host to be protected. In the thin client-based architecture of FIG. 5, detection system 114 communicates with a central server where the proximity of detection system 114 can be adjusted to reduce network overhead.

Referring back to FIG. 6, the simulated user activity can be injected to an application inside the computing environment at 606. In addition, as described previously, user activity from actual users can be replayed along with the simulated user activity (that includes decoy information) to support the believability of the simulated user activity.

As shown in FIGS. 2-5, the simulated user activity can be injected using any suitable number of approaches. Referring back to FIG. 2, simulation and injection component (VMSim) 210 transmits the simulated user activity into the guest operating system 260. In a more particular example, simulation and injection component 210 obtains access to the display of guest operating system 260 to play back the simulated user activity. During playback, simulation and injection component 210 can automatically detect the position of the virtual machine window and adjust the coordinates to reflect the changes of the simulated user activity. Alternatively, simulation and injection component 210 can transmit the decoy information 250 into a suitable buffer.

In some embodiments, as shown in FIG. 4, the simulated user activity can be injected by simulating Bluetooth input devices. In selecting the Bluetooth protocol, the physical proximity of the workstations to one another within a typical workspace can be leveraged. More particularly, a Bluetooth proxy application can be used to transmit the simulated user activity. The Bluetooth proxy application can receive user activity from GNU Xnee or any other suitable function, modify and translate the user actions to the Bluetooth human interface devices (HID) protocol, and transmit the simulated user activity into a host.

Alternatively or additionally, in the thin client environment of FIG. 5, remote access protocols (e.g., Citrix, VNC, etc.) can be used to inject simulated user activity. Detection system 114 is deployed as a thin client that periodically connects to each hosted virtual machine and injects decoy credentials and/or any other suitable decoy information with simulated user activity.

Referring back to FIG. 6, at 608, process 600 continues by performing a verification that includes determining whether state information of the application matches an expected state after the simulated user activity is injected. Process 600 verifies the success or failure of mouse and keyboard events that are passed to, for example, a guest operating system. For example, in some embodiments, a visual verification can be performed by determining whether the screen output changed in response to simulated user activity (e.g., with respect graphical artifacts or pixel selections).

In a more particular example, FIG. 2 shows that virtual machine verification can be performed using virtual machine verification component 220. Virtual machine verification component 220 can determine whether the current virtual machine state is in one of a predefined set of states. The states can be defined from select regions of the virtual machine graphical output, thereby allowing states to consist of any suitable visual artifact present in a simulation workflow. To support non-deterministic simulations, it should be noted that each transition can end in one of several possible states. It should also be noted that the verification can be formalized over a set of transitions T and set of states S, where each t₀, t₁, . . . , t_(n)εT can result in the set of states s_(t1), s_(t2), . . . , s_(tn) ⊂S. Virtual machine verification component 220 can decide whether a state verified for a current state c, when cεs_(ti).

It should be noted that, in some embodiments, states can be defined using a pixel selection tool. The pixel selection tool allows simulation and injection component 210 or any other suitable component to select any portion of a guest operating system's screen for use as a state. In particular, the states can be defined for any event that can cause a simulation to delay (e.g., a network login, opening an application, navigating to a web page). In addition, the pixel selection tool allows a user of simulation and injection component 210 to select the size of the screen (state).

Virtual machine verification component 220 can be controlled and/or modified by several parameters, such as the number of pixels in the screen selection, the size of the search area for a selection, the number of possible states to verify at each point of time, the number of pixels required to match for positive verification, etc. In some embodiments, a time or computation estimate for performing such a verification can be provided, where a user can modify the screen selection, number of pixels, or perform any other suitable modification to modify the estimate.

Similarly, in the thin client environment shown in FIG. 5, arbitrary portions of the virtual machine screen can be monitored and/or grabbed and the absolute number of different pixels can be counted.

In some embodiments, instead of monitoring the screen of the hosts under protection, the verification can be conducted by performing a network level verification. In a wireless device-based architecture, such as the one shown in FIG. 4, the verification can be performed by verifying that a connection to an IP address of a sensitive website's web server is established and monitoring for a specific conversation pattern (e.g., based on bytes sent and received).

In some embodiments, process 600 determines whether user activity—e.g., actual user activity, simulated user activity, and/or replayed user activity—is network verifiable. In response to determining that the simulated user activity (including decoy information) is network verifiable, a network monitoring component can be initiated to verify that the output over the network is as expected.

For example, a network monitor, such as network monitor 440 in FIG. 4 or any other suitable monitoring component, monitors and/or collects network traffic. This can include, for example, reporting conversation summaries or data exchanged between a host and a web server for a sensitive website (e.g., a banking website, a web-based email provider website, etc.). Detection system 114 can analyze the network traffic received from network monitor 440. For example, detection system 114 can, from the received network traffic, determine the number of conversations, the number of exchanged request/response messages, and the number of bytes transferred in each message.

In a more particular example, a conversation summary or exchange can be represented as follows:

-   -   192.168.0.1 192.168.0.42>70<2728>204<67>762<1260         In the above-mentioned exchange, the first two fields represent         the IP addresses of the participators (the host computer and the         web server). The subsequent fields represent the aggregated         number of bytes transmitted in each direction. For example, at         the start, a computing device with an IP address of 192.168.0.1         transmitted 70 bytes to a computing device with an IP address of         192.168.0.42.

Detection system 114 can analyze the conversation summaries to create one or more models. For example, detection system 114 can determine that each login session to an anonymous bank website comprised of only one conversation with ten messages or five request/response pairs. Similarly, in another example, detection system 114 can determine that when a user is successful in logging into a website, such as PayPal, there were several conversations, but there was always one conversation that comprised of eight messages. On the other hand, detection system 114 can observe that failed login attempts to particular websites resulted in different conversations with respect to number of streams, number of messages, number of bytes transmitted in each message, etc. In a more particular example, detection system 114 can observe that failed login attempts to the PayPal website resulted in more conversations, where none of them comprised eight messages.

Accordingly, detection system 114, upon analyzing the received network traffic, can perform a conversation match, where the number of conversations, the number of messages exchanged, and the number of bytes in each message can be used to verify the simulated user activity.

Referring back to FIG. 6, process 600 continues by determining whether traffic indicates the presence of covert malware in the application at 610 and determining whether a decoy corresponding to the simulated user activity has been accessed by an unauthorized entity. The detection system determines whether it deceptively induced or enticed covert malware into an observable action during the exploitation of monitored information injected into the computing environment. In a more particular example, the existence of credential stealing malware can be monitored and detected by impersonating a user login to a sensitive website using decoy credentials and detecting whether this specific account was accessed by anyone else except for the system. This provides clear and concrete evidence that the credentials were stolen and that an entity other than the system attempted to check the validity and/or value of that account.

For example, in response to determining that the current state does not match an expected state—e.g., the current graphical output does not match the expected graphical output, the absolute number of pixels in a portion of the graphical output does not match the expected number of pixels, or the current conversation or conversations do not match with the expected conversation (request/response pairs)—the detection system monitors network traffic using a network monitor to determine whether covert malware attempts an exfiltration. For example, network monitoring component 230 of FIG. 2 or any other network monitoring component can record traffic and generate an alert when malicious traffic originates from the host computing environment. In a more particular example, FIG. 8 shows an example of network traffic elicited from a Sinowal Trojan. This shows the covert malware exfiltrating the actual decoy credentials in unencrypted network traffic. In another suitable example, FIG. 9 shows an illustrative example for virtual machines in a thin client environment, where outbound HTTP POST messages were transmitted to websites other than those provided for navigation to while injecting IP addresses. The IP addresses that communicate with covert malware are shown in the left column and the script names that exfiltrated data are shown in the right column.

It should be noted that, in some embodiments, to identify the malicious traffic, a whitelist of known and allowed traffic, which can be constructed as part of the simulated user activity, can be used to differentiate or distinguish known and allowed traffic from malicious traffic.

In addition, as described previously, decoy information that includes bogus credentials can be detectable outside of a host by one or more external monitors. For example, a bogus login to a website can be created and monitored by external approaches (e.g., polling a website or using a custom script that accesses mail.google.com and parses the bait account pages to gather account activity information). In another example, bait information including online banking logins provided by a collaborating financial institution, login accounts provided by collaborating online servers, and/or web-based email accounts provided by collaborating email providers can be used as decoy information.

More particularly, a network monitor or any other suitable external monitor can log into a decoy account at predetermined times (e.g., every hour) to check the last recorded login. If the delta between the times is greater than a given amount (e.g., 75 seconds), the external monitor triggers an alert for the account and transmits an email notification. For example, a PayPal external monitor can determine the time differences recorded by the detection system and the PayPal service for a user's last login.

In some embodiments, the external monitor can be configured to accommodate for different polling frequencies. For example, based on the type of traffic information (e.g., only last login time), the external monitor can be configured to poll the service more frequently.

In some embodiments, the detection system can transmit a notification, such as an email notification, to an administrator user that indicates covert malware may be present. The notification can include information relating to the attacker, such as the IP address, the exfiltrated decoy information, and the time that the attacker conducted the malicious action. The notification can also include count information relating to the number of times the particular decoy information has been accessed, executed, etc.

Accordingly, methods, systems, and media for detecting covert malware are provided.

Although the invention has been described and illustrated in the foregoing illustrative embodiments, it is understood that the present disclosure has been made only by way of example, and that numerous changes in the details of implementation of the invention can be made without departing from the spirit and scope of the invention, which is only limited by the claims which follow. Features of the disclosed embodiments can be combined and rearranged in various ways. 

What is claimed is:
 1. A method for detecting covert malware in a computing environment, the method comprising: receiving a first set of user actions; generating a second set of user actions based on the first set of user actions and a model of user activity; conveying the second set of user actions to an application inside the computing environment; determining whether state information of the application matches an expected state after the second set of user actions is conveyed to the application; and determining whether covert malware is present in the computing environment based at least in part on the determination.
 2. The method of claim 1, wherein the second set of user actions is generated outside of the computing environment.
 3. The method of claim 1, further comprises: determining whether a decoy corresponding to the second set of user actions has been accessed by an unauthorized entity; and in response to determining that the decoy has been accessed by the unauthorized entity, determining that covert malware is present in the computing environment.
 4. The method of claim 1, wherein the first set of user actions comprises mouse and keyboard events.
 5. The method of claim 4, further comprising replaying at least a portion of the first set of user actions along with conveying the second set of user actions.
 6. The method of claim 4, wherein generating the second set of user actions further comprises recording, modifying, and replaying the mouse and keyboard events based on the first set of user actions.
 7. The method of claim 1, wherein the second set of user actions is generated by modifying the first set of user actions and translating the first set of user actions using a wireless protocol.
 8. The method of claim 1, further comprising defining the second set of user actions by a formal language, wherein the first set of user actions is mapped to constructs of the formal language and wherein the formal language comprises carry actions for the simulation and the conveyance of the decoy and cover actions that support believability of the second set of user actions and the decoy.
 9. The method of claim 1, wherein the model of user activity includes a model of at least one of: keystroke speed, mouse speed, mouse distance, keystroke error rate, and frequency of errors made during typing.
 10. The method of claim 1, wherein determining the state information further comprises performing a visual verification that determines whether a screen output changed as expected in response to the second set of user actions.
 11. The method of claim 1, wherein determining the state information further comprises: analyzing network traffic to determine message characteristics that include at least one of: a number of conversations, a number of messages exchanged, and a number of bytes in each message; and comparing the state information that includes current message characteristics with the analyzed network traffic that includes determined message characteristics.
 12. A system for detecting covert malware in a computing environment, the system comprising: a hardware processor that is configured to: receive a first set of user actions; generate a second set of user actions based on the first set of user actions and a model of user activity; convey the second set of user actions to an application inside the computing environment; determine whether state information of the application matches an expected state after the second set of user actions is conveyed to the application; and determine whether covert malware is present in the computing environment based at least in part on the determination.
 13. The system of claim 12, wherein the second set of user actions is generated outside of the computing environment.
 14. The system of claim 12, wherein the hardware processor is further configured to: determine whether a decoy corresponding to the second set of user actions has been accessed by an unauthorized entity, and in response to determining that the decoy has been accessed by the unauthorized entity, determine that covert malware is present in the computing environment.
 15. The system of claim 12, wherein the first set of user actions comprises mouse and keyboard events.
 16. The system of claim 15, wherein the hardware processor is further configured to replay at least a portion of the first set of user actions along with conveying the second set of user actions.
 17. The system of claim 15, wherein the hardware processor is further configured to record, modify, and replay the mouse and keyboard events based on the first set of user actions.
 18. The system of claim 12, wherein the second set of user actions is generated by modifying the first set of user actions and translating the first set of user actions using a wireless protocol.
 19. The system of claim 12, wherein the hardware processor is further configured to define the second set of user actions by a formal language, wherein the first set of user actions is mapped to constructs of the formal language and wherein the formal language comprises carry actions for the simulation and the conveyance of the decoy and cover actions that support believability of the second set of user actions and the decoy.
 20. The system of claim 12, wherein the model of user activity includes a model of at least one of: keystroke speed, mouse speed, mouse distance, keystroke error rate, and frequency of errors made during typing.
 21. The system of claim 12, wherein the hardware processor is further configured to perform a visual verification that determines whether a screen output changed as expected in response to the second set of user actions.
 22. The system of claim 13, wherein the hardware processor is further configured to: analyze network traffic to determine message characteristics that include at least one of: a number of conversations, a number of messages exchanged, and a number of bytes in each message; and compare the state information that includes current message characteristics with the analyzed network traffic that includes determined message characteristics.
 23. A non-transitory computer-readable medium containing computer-executable instructions that, when executed by a processor, cause the processor to perform a method for detecting covert malware in a computing environment, the method comprising: receiving a first set of user actions; generating a second set of user actions based on the first set of user actions and a model of user activity; conveying the second set of user actions to an application inside the computing environment; determining whether state information of the application matches an expected state after the second set of user actions is conveyed to the application; and determining whether covert malware is present in the computing environment based at least in part on the determination. 